package com.springframework.beans.factory.support;

import com.springframework.beans.factory.config.MyBeanDefinition;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.core.AliasRegistry;

/**
 * @Author 虎哥
 * @Description //TODO
 * 要带着问题去学习,多猜想多验证
 **/
public interface MyBeanDefinitionRegistry extends AliasRegistry {

    void registerBeanDefinition(String beanName, MyBeanDefinition beanDefinition)
            throws BeanDefinitionStoreException;


    void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;


    MyBeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException;


    boolean containsBeanDefinition(String beanName);


    String[] getBeanDefinitionNames();


    int getBeanDefinitionCount();

    boolean isBeanNameInUse(String beanName);

}
